﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;

///<author>Thomas De Pauw</author>
///<date>12/10/2010</date>
///<update>5/11/2010</update>
///<update>20/11/2010</update>

namespace Bibliotheek
{
    /// <summary>
    /// methode voor het helpen invullen van de emu bij de Gui
    /// </summary>
    class EnumeratieGuiHelper
    {
        /// <summary>
        /// default constructor
        /// </summary>
        public EnumeratieGuiHelper(){
            
        }

        /// <summary>
        /// methode voor toolstripmenu op te vullen met de inhoud van een emu
        /// </summary>
        /// <param name="item">doel</param>
        /// <param name="enumeratieType">het emu type waar de waarden worden uitgehaald.</param>
        /// <returns>array met menu items</returns>
        public static ToolStripMenuItem[] Opvullen(ToolStripMenuItem item, Type enumeratieType)
        {
            ArrayList menuItems = new ArrayList();
            foreach (object o in Enum.GetValues(enumeratieType))
            {
                if (o.ToString() != "NN")
                {
                    ToolStripMenuItem it = (ToolStripMenuItem)item.DropDownItems.Add(o.ToString());
                    it.Checked = true;
                    it.CheckOnClick = true;                    
                    menuItems.Add(it);
                }
            }
            ToolStripMenuItem[] temp = new ToolStripMenuItem[menuItems.Count];
            int i=0;
            foreach (ToolStripMenuItem toolItem in menuItems)
            {
                temp[i] = toolItem;
                i++;
            }
            return temp;
        }

        /// <summary>
        /// methode voor een combobox op te vullen met de inhoud van een emu
        /// </summary>
        /// <param name="cb">doel</param>
        /// <param name="enumeratieType">het emu type waar de waarden worden uitgehaald</param>
        public static void Opvullen( ComboBox cb, Type enumeratieType){
        
            foreach (object o in Enum.GetValues(enumeratieType)) {
            
                if (o.ToString() != "NN") {
                    cb.Items.Add(o);
                }
            }
            cb.SelectedIndex = 0;
        }

        /// <summary>
        /// methode voor een combobox op te vullen met de inhoud van een emu
        /// </summary>
        /// <param name="cb">doel</param>
        /// <param name="enumeratieType">het emu type waar de waarden worden uitgehaald</param>
        /// <param name="selected">de standaard geselecteerde waarde kiezen adv deze index</param>
        
        public static void Opvullen(ComboBox cb, Type enumeratieType, int selected)
        {

            foreach (object o in Enum.GetValues(enumeratieType))
            {

                if (o.ToString() != "NN")
                {
                    cb.Items.Add(o);
                }
            }
            try
            {
                cb.SelectedIndex = selected;
            }
            catch (ArgumentOutOfRangeException)
            {

                cb.SelectedIndex = 0;
            }
           
        }
    }
}
